import ListElements from '../dto/ListElements.js'

/**
 * Класс, описывающий тело запроса
 */
export default class DtoPostData {
    /** @type {string} */
    mimeType

    /** @type {ListElements} */
    params

    /** @type {string} */
    text

    constructor(obj) {
        this.mimeType = obj?.mimeType !== undefined ? obj.mimeType : null
        this.params = obj?.params !== undefined ? ListElements.BuildFromObj(obj.mimeType) : null
        this.text = obj?.text !== undefined ? obj.text : null
    }

    /**
     * Создать экхемпляр класса из объекта, схожего по структуре с элементом класса DtoCookie
     * @param {object} obj 
     */
    static BuildFromObj(obj) {
        return new DtoPostData(obj)
    }

    /** @type {string} */
    getMimeType() {
        return this.mimeType
    }

    /** @type {ListElements} */
    getParams() {
        return this.params
    }

    /** @type {string} */
    getText() {
        return this.text
    }
}